Transferring state information between electronic devices

ABSTRACT

Some embodiments enable a first electronic device (e.g., a notebook computer) to obtain state information directly from another electronic device (e.g., a smartphone) so that the first electronic device may replicate a state of content of the other computing device. This is useful when a user of an electronic device desires to switch between one device and another device such that the user may continue an activity (e.g., playing a video game) on another device without having to restart the activity. This is also useful when a user of a first electronic device attempts to replicate the state of the activity on a second device from another user such that both users may participate in the same activity. In some embodiments, a user of a device may obtain content from a server and state information from another device to replicate the state of content on the other device.

BACKGROUND

People are utilizing electronic devices for an increasing number andvariety of tasks. It is not uncommon for a user to possess or haveaccess to multiple electronic devices. Within a single day, a user mayswitch between multiple electronic devices: from checking the weather ona personal computer at home, looking at a mobile device on the way tothe car, using the work desktop as the user arrives the office,switching back to the mobile device when the user steps out of work oris on the way home, and then getting back onto the home desktop orlaptop after the user returns home. Even while a user is within hishome, the user may opt to switch from his home desktop from when he isin his bedroom to the big television screen while sitting in his livingroom or to his portable laptop at the dining table.

Oftentimes, when the user is moving between locations and switchingbetween devices, the user may be three-quarters through reading a newsarticle, in the middle of playing a video game, halfway through watchinga YouTube® video, or partially through listening to a song. The user mayfind it inconvenient to switch between the different devices because theuser may either need to relocate the information or start from thebeginning again when switching between devices. There is currently noeasy way for a user to switch between multiple devices easily withoutdisrupting the user's interaction with the devices. As people continueto encounter an increasing number of electronic devices, a need existsto improve the overall user experience for users when switching betweendevices.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, in which:

FIG. 1 illustrates an example situation of how a first device can obtaindata from a second device in accordance with various embodiments;

FIGS. 2( a) and 2(b) illustrate an example situation of when a state ofcontent is transferred from a first device (e.g., a portable computingdevice) to a second device (e.g., a desktop) such that a user(s) maycontinue the activity from the first device on the second device inaccordance with various embodiments;

FIGS. 3( a) and 3(b) illustrate example situation of replicating stateof content from a first device to a second device such that the seconddevice displays the same state of content as the first device inaccordance with various embodiments;

FIGS. 4( a) and 4(b) illustrate another example situation of how anelectronic device may generate a display that matches the state ofcontent on a portable computing device in accordance with variousembodiments;

FIG. 5 illustrates an example process for enabling an electronic deviceto display a current state of a content displayed on a portablecomputing device in accordance with various embodiments;

FIG. 6 illustrates an example process for sending state information toan electronic device in accordance with various embodiments;

FIG. 7 illustrates front and back views of an example electronic userdevice that can be used in accordance with various embodiments;

FIG. 8 illustrates example components of a computing device such as thatillustrated in FIG. 7; and

FIG. 9 illustrates an environment in which various embodiments can beimplemented.

DETAILED DESCRIPTION

Systems and methods in accordance with various embodiments of thepresent disclosure may overcome one or more of the aforementioned andother deficiencies experienced in conventional approaches insynchronizing (“syncing”) content, or replicating state information,across two or more electronic devices. Syncing devices can cause atleast one of the devices to be updated so that the devices each have themost recent version of at least selected or determined information(e.g., state information within a content or application).

Some embodiments enable an electronic device (e.g., desktop computersand portable computing devices such as laptop computers, tabletcomputers, smartphones, media players, personal digital assistants,etc.) to replicate a state of content of another device by causing theelectronic device to obtain access to the content (e.g., data stored ona mobile device such as a video clip, an audio clip, a document, a Webpage, etc. and software applications such as a gaming application, acontacts list application, etc.) if the electronic device does notalready have access to the content, and also obtain access to specificstate information (e.g., video frame(s) within the video clip, a pointwithin the audio clip, a page within the document, a level within avideo game, a point within a Web page, an updated contacts list) of theother device. By doing so, a user of the electronic device mayconveniently resume an activity from a first user device (e.g.,listening to a song, watching a YouTube® video, or reading an article ona smartphone) on another user device (e.g., a desktop, a laptop, or anInternet-capable television) without having to start from the beginningor resituate where the user had left off on the first user device.

Approaches in accordance with various embodiments enable an electronicdevice to obtain or replicate the state of content from a separate userdevice (e.g., a portable computing device) by submitting a request thatcauses the separate user device to send state information to theelectronic device through a direct connection. The electronic device maythen replicate the state of content of the separate user device byobtaining access to the content (e.g., through a network connection witha remote server), if not already stored or obtained by the electronicdevice, and by using the received state information to access the stateof the content that was last accessed on the separate user device.

In one embodiment, a portable computing device (or other first device)may allow an electronic device (or other second device) to replicate thestate of content on the portable computing device by sending aninvitation, such as one or more hyperlinks (e.g., a uniform resourcelocator (URL)) to the electronic device. The electronic device mayobtain access to content from a server through one of the hyperlinks insome embodiments. In some embodiments, the server contains applicationdata in addition to the application when the portable computing devicesyncs periodically with the server. The electronic device may thenobtain state information with respect to the content directly from theportable computing device by following one of the hyperlinks, which canprovide information enabling the portable computing device to send stateor other such information to the electronic device.

In some embodiments, the electronic device may obtain state informationdirectly from the portable computing device when there is no network(e.g., Internet) connection. For example, a desktop may create a directconnection using a wireless connection channel (e.g., Bluetooth®, Wi-Fi)or a wired connection (e.g., using a universal serial bus (USB) cable)to communicate with various portable computing devices. Via a directconnection, the portable computing device may send state information tothe connected electronic device, with or without having an Internetconnection. In some embodiments, the user may also receive a copy of thecontent from the portable computing device over the direct connection.The user of the electronic device may find the direct transfer of stateinformation and/or content between the devices convenient when the userwants to receive the state of content from the portable computing devicewithout Internet access (e.g., when he is on a camping trip, in theelevator, in the garage where there is no signal, etc.).

Approaches in accordance with various embodiments enable one or moredevices to match the state of content from another device. Someembodiments enable a user of an electronic device to obtain contentinformation (e.g., a gaming application, a word processing application,data of a computing device, a contacts list application, etc.) from aremote server. In some embodiments, the user of the electronic devicemay then obtain state information with respect to content informationfrom a particular device (e.g., a portable computing device, aworkstation, a video game console, etc.) through directly transferringthe state information from the particular device to the electronicdevice (e.g., another portable computing device, a laptop, etc.). Theuser of the particular device may then conveniently continue the sameactivity on the electronic device without having to start all over. Insome embodiments, a user of one device may transfer a state of contentto a user of another device such that multiple users may participate inthe same activity from the same point on.

Furthermore, the user of the electronic device may conveniently retrievedata stored on another device (e.g., a portable computing device ownedby the user or another user). In some embodiments, the electronic deviceobtains the data stored on the portable computing device from a remoteserver when a direct connection between the devices is not available.The electronic device subsequently obtains the data from the remoteserver “in the cloud”. In some embodiments, the electronic deviceobtains an instance of an application (e.g., address book application)and/or an updated version of the locally stored data (e.g., contactslist and any associated information) directly from the portablecomputing device (e.g., through a direct connection).

Various other applications, processes and uses are presented below withrespect to the various embodiments.

FIG. 1 illustrates an example situation 100 of how a first device(herein, referred to as an electronic device) can obtain data from asecond device (herein, referred to as a portable computing device forsake of clarity of explanation). Traditionally, syncing does notreplicate or transfer state (e.g., video frame in a video) betweendevices as a user of one of the devices may inadvertently causeconfidential information to be stored on the other user's device. Someembodiments enable a user to transfer content on an electronic device toa central location (e.g., remote server(s)) over a wired or wirelessconnection. In turn, the user may sync another device or retrieveupdated information by connecting to the central location and thendownloading or streaming the information similarly through a wired orwireless connection.

As described above, the data on a portable computing device 105, such asan application and its associated state information, may be stored at acentral location (e.g., a central server) 110. In some embodiments, auser of the portable computing device stores some or all of the data onthe portable computing device at the central location (e.g., by manuallysaving and syncing the data with a remote server). Periodically, thedevice of some embodiments automatically sends data (e.g., stateinformation) from the portable computing device to a location forstorage (e.g., every 5 seconds, every minute, every half hour). Byhaving data stored in a location that is accessible by other devices onthe same network, a user may retrieve data from another device byconnecting to the data storage location. Here, the user of theelectronic device 115 (e.g., a desktop computer) may retrieve certaincontent and/or associated state information from the portable computingdevice 105 by connecting to the central location (e.g., through awireless communication channel (e.g., Bluetooth®, Wi-Fi, etc.).

As described above, some embodiments store a copy of all the content fora user account at a remote server. Users may then retrieve the contentof the user account from any electronic device by obtaining permissionto access the content of the user account (e.g., by logging onto a pageon a Web browser, by inputting authentication credentials through anapplication installed on the device, etc.). In FIG. 1, the device 105stores a copy of its contents locally on the device and another copy ona remote server. The electronic device 115 may retrieve content eitherthrough a local connection with the portable computing device 105 (e.g.,using a USB cable or a wireless communication channel) or through anetwork connection with the remote server 110.

FIGS. 2( a) and 2(b) illustrate an example situation 200 of when a stateof content is transferred from a first device (e.g., a portablecomputing device) to a second device (e.g., a desktop) such that auser(s) may continue the activity from the first device on the seconddevice. This is useful in the situation where, for example, a user is inthe middle of a video game or in the middle of jotting down notes on amobile device and, as the user enters the apartments, desires tocontinue the video game or note taking on a desktop. A seamless transferof the state information or content, such as the state information ofthe user's on-going video game or the then-current content of the user'snotes, from the mobile device to the desktop, enables the user tocontinue playing the game or updating notes on a different device (e.g.,a device with a larger screen).

As shown in FIG. 2( a), the screen of the mobile device 205 displays thestate of an on-going television show. Without requiring another deviceto have the same application or program downloaded locally on thedevice, the user may continue his television show on a different device.In FIG. 2( b), the user has transferred the content and/or stateinformation from the mobile device 205 to the user's desktop 210 (e.g.,by selecting a virtual button displayed on the screen of the mobiledevice, by sending a uniform resource locator (URL) link from the mobiledevice to the desktop to enable the desktop to obtain the necessaryinformation for syncing up the devices, etc.). As shown in the displayof the user's desktop 210, the desktop displays a continuation of thatdisplayed on the mobile device 205. The user of the desktop 210 may thenresume watching the television show on a different device exactly wherehe had left off on the mobile device 205.

FIGS. 3( a) and 3(b) illustrate example situation 300 of replicatingstate of content from a portable computing device 320 to an electronicdevice 315 such that the electronic device displays the same statewithin a particular application as the portable computing device. Asmentioned above, the electronic device may be a desktop computer, whilethe portable computing device may be a device such as a smartphone ortablet computer. Although this figure illustrates a transfer of contentinformation from the portable computing device (e.g., a cell phone) tothe electronic device (e.g., a desktop), one of ordinary skill wouldrecognize that transferring content information and causing the deviceto display a same state within a particular application may also beperformed the other way around (i.e., when a user continues playing avideo game on the user's cell phone as he walks out of his apartment andaway from his desktop). Further, although the terms “portable computingdevice” and “electronic device” are used in this example (and otherexamples throughout), it is understood that one may replicate state ofcontent between devices of the same type (e.g., replicating state ofcontent between multiple smartphones).

In some embodiments, the portable computing device 320 sends theelectronic device 315 a link. In one instance, the link (e.g., a URL)enables the electronic device 315 to access a remote server thatcontains information about content and/or state information on theportable computing device 320. In another instance, the link (e.g., adevice identifier) enables the electronic device 315 to establish alocal connection with the portable computing device 320 so that theelectronic device 315 can retrieve content and/or state informationdirectly from the portable computing device 320. In yet anotherinstance, the link enables the electronic device 315 to retrieve content(e.g., a video game application) from a remote server and stateinformation (e.g., exact state of the user's progress in the video gameapplication) from the portable computing device 320. As described above,the content may be a document, etc. that the user of the portablecomputing device wants to share with the user of the electronic device.In some embodiments, the link may be a URL that is transmitted to theelectronic device through email, though an instant message, etc. Thelink of some embodiments may contain information about the portablecomputing device (e.g., IP address of the portable computing device,device identifier and/or locator), access information or permission forretrieving data from a remote server and/or from the portable computingdevice.

In some embodiments, the electronic device does not need to wait toreceive a link from the portable computing device that enables theelectronic device to access the content and/or state information on theportable computing device. Rather, the electronic device may activelyinitiate a request for content and/or state information from theportable computing device. To retrieve content and/or state informationfrom the portable computing device, the electronic device of someembodiments sends a request “to the cloud” for device syncing or toretrieve the state of a particular application of interest operating onthe portable computing device. The “cloud” as referred to in thisdocument and as illustrated within the figures with a cloud shape refersto computational resources that are accessible through a computernetwork (e.g., Internet, LAN, WAN, etc.).

As shown in the first scenario 305 in FIG. 3( a), some embodimentsenable the electronic device 315 to transmit the request to the cloud325 (e.g., through a computer network). In some embodiments, the requestis a request to obtain information that would enable the electronicdevice to recreate content that is displayed on the portable computingdevice. The request may include a request for application data that auser is currently using on the portable computing device (e.g., arequest for a specific video game application such as Angry Birds®). Therequest may also include a request for state information that includes acurrent configuration of information in a program or application (e.g.,a request for the then-current state information of the on-going videogame).

In one example, the state information of a video file may include thevideo frame(s) that is currently being displayed on the portablecomputing device. In another example, the state information of a videogame may include a level in the game. The state information for aparticular user in Angry Birds® may be the level he is in, the number ofpigs he knocked out, the location of the pigs, the number of birdsremaining, the position and trajectory of a bird flying towards atarget, etc.

In some embodiments, a request is submitted to the cloud upon a user'sselection of the link received from the portable computing device. Someembodiments transmit the request to the cloud upon the user's input of aparticular URL in a Web browser application. Different embodiments maycause the electronic device to submit a request for application dataand/or state information differently.

The cloud or computing resources of some embodiments may then processthe request from the electronic device by analyzing the requestedinformation. In some embodiments, the request may include a request forapplication data. The request may also include a request for stateinformation of the portable computing device such that the remote servermust send a separate request to the portable computing device. In someembodiments, the remote server transmits a separate request to aportable computing device requesting the state information. As mentionedabove, the portable computing device of some embodiments periodicallyupdates the remote server of the current status or state information ofongoing activity on the portable computing device. For instance, theportable computing device may send the delta in a document to a remoteserver every minute or send the location within a video (e.g., a pointerto a particular frame) every ten seconds. In addition to periodicalauto-saving to a remote server, the user of the portable computingdevice may also manually save and update the server of a current stateof the device (e.g., by selecting a “save” option in an application).

In some embodiments, the portable computing device sends the stateinformation to the cloud upon receiving the request for the stateinformation. The remote server or the cloud may then send/forward thereceived state information to the electronic device. In someembodiments, upon receiving a request for state information from thecloud, the portable computing device sends the state informationdirectly to the electronic device instead of going through the cloud.When a local connection between the electronic device and the portablecomputing device is available, some embodiments enable directtransmission of state information between the devices to save time andresources. Further, an electronic device may receive state information(e.g., state of a video game) locally from a portable computing device,the electronic device may still request/receive application data (e.g.,video game application) from a remote server. This is because, while arelatively small amount of data transfer may be involved to retrievestate information, a considerably larger amount of data transfer may berequired to request/receive application data. As a local connectionbetween the electronic device and the portable computing device may beless suited to handle a larger data transfer, in at least certaininstances, overall efficiency is improved when the electronic devicerequests/retrieves application data from a remote server. Further, insome embodiments, the electronic device is communicatively coupled witha cloud server and utilizes an application on the cloud server. Theelectronic device does not download or install the application locallyand relies on the cloud server for all application-related processing.

As shown in the second scenario 310 in FIG. 3( a), some embodimentsenable the electronic device 315 to transmit a request for applicationdata to the cloud 325 and transmit a separate request for stateinformation to the portable computing device 320. As shown in thefigure, the electronic device 315 sends a request for an application(e.g., a Microsoft® Word application, an application for displaying andmanaging contact lists, a video application such as Angry Birds®) to thecloud. The electronic device 315 sends a separate request for the stateinformation (e.g., document being currently edited, contact listinformation, level information) directly to the portable computingdevice 320, instead of going through the cloud.

In some embodiments, the request for an application may be a request todownload the entire application onto the electronic device. The deviceof some embodiments may request a virtual instance of the application(e.g., a virtualized application or software as a service) that may berun on an environment of the electronic device or hosted in a remotelymanaged datacenter. Some embodiments may stream the application from thecloud such that only pieces of the application's code, data, andsettings are needed for reproducing that displayed on the portablecomputing device in certain instances. Moreover, in some embodiments,the request for application data may be more than a request for theapplication itself, but may also be a request for data that was lastsaved onto the cloud by the portable computing device (e.g., data fromthe last auto-save, data from the last sync or save).

FIG. 3( b) illustrates the transfer of content and state information tothe electronic device 315 (e.g., through the computer network(s)). Insome embodiments, the portable computing device may send the stateinformation to the cloud (e.g., when a direct connection between theportable and electronic devices is unavailable), which may then beforwarded to the electronic device. Some embodiments enable the portablecomputing device to send the state information directly to theelectronic device. When the portable computing device sends the stateinformation directly to the electronic device, the state information isnot sent to a third party (e.g., a remote server) and forwarded to theelectronic device, but is sent directly from the portable computingdevice to the electronic device (e.g., through Bluetooth®, Wi-Fi, etc.).This would not require a network connection to the cloud and thus can besent offline to the electronic device, so long as a local connection isestablished between the two devices (e.g., Bluetooth®).

In some embodiments, the cloud (e.g., a remote server) sends the contentand/or state information to the electronic device. As mentioned above,the cloud may send application data that includes the application andsome content from the last sync or the application itself. Theelectronic device may then install the application on the device itself.In some embodiments, the cloud may stream the application from theserver (i.e., application streaming) delivering parts of a program asneeded. Some embodiments send content necessary for the electronicdevice to run the program or application centrally on the server,instead of having the electronic device locally store and run theprogram or application.

In some embodiments, the electronic device can generate a display thatmirrors a state within content of the portable computing device usingthe received content and state information. As mentioned above, theelectronic device can generate a display that mirrors a state withincontent of the portable computing device by identifying a locationwithin the content using the state information. The location within thecontent may be a frame in a video clip, a point within an audio clip, alevel within a video game, a page within a document, etc. The electronicdevice of some embodiments may use a pointer to mark or identify thelocation within the content that the portable computing device had leftoff.

Some embodiments enable the electronic device to display the generatedinformation. In some embodiments, the portable computing devicesubsequently syncs the content on the device with the cloud. Someembodiments enable the portable computing device to send the stateinformation to the cloud so as to retain this information centrally.

FIGS. 4( a) and 4(b) illustrate another example situation 400 of how anelectronic device 415 may generate a display that matches the state ofcontent on a portable computing device 420. In some instances, theelectronic device may not have an established connection with the cloudat all times. The electronic device may nevertheless recreate thatdisplayed on the portable computing device by receiving the contentnecessary at a prior time when connection was available and then byreceiving the state information from the portable computing device whenconnection is not available. This would be useful in instances such aswhen two devices would like to sync during a camping trip where noInternet connection is available.

FIG. 4( a) illustrates the electronic device 415 requesting for contentand state information. In some embodiments, the electronic device mayrequest for content from the cloud at a time t1 when connection with theInternet is available and established. The electronic device of someembodiments downloads the necessary information for an application torun locally on the electronic device. As indicated by the dotted arrows,the electronic device 415 requests the content with the cloud andreceives requested data (e.g., application data) while a connection isestablished. This may be performed before a camping trip, prior toentering a zone without Internet connection, or before a laptop losesconnection with the Internet.

When a user of the electronic device wants to sync the electronic devicewith the portable computing device such that the devices have matchingstate with respect to the content, the user of the electronic device mayrequest for state information from the portable computing device. Insome embodiments, at a time t2, when no connection with the Internet isavailable, the electronic device may request for state informationdirectly with the portable computing device. Some embodiments enable theelectronic device to send a request via a Bluetooth® connection or alocal connection through Wi-Fi or a USB connector cable.

FIG. 4( b) illustrates that the electronic device may receive the stateinformation of the portable computing device directly from the portablecomputing device through a local connection (e.g., Bluetooth®, Wi-Fi, aUSB connector cable, etc.). Without an Internet connection, theelectronic device may recreate that displayed on the portable computingdevice using the application data previously downloaded and the stateinformation received from the portable computing device.

The portable computing device may send the state information directly tothe electronic device as packets of information in some embodiments. Theelectronic device of some embodiments may then replicate the state ofthe content of the portable computing device using the received stateinformation. Similarly, the portable computing device may send the stateinformation to the cloud when an Internet connection is againestablished. Oftentimes, the state information is a small amount ofinformation compared to the content that is previously retrieved fromthe cloud. For instance, while the content may be a 90-minute longvideo, the state information may be a particular frame or a pointerdirecting to a frame for a video.

FIG. 5 illustrates an example process 500 for enabling an electronicdevice to display a current state of a content displayed on anotherdevice (e.g., a portable computing device) in accordance with at leastone embodiment. It should be understood that, for any process discussedherein, there can be additional, fewer, or alternative steps performedin similar or alternative orders, or in parallel, within the scope ofthe various embodiments unless otherwise stated. In this example, theelectronic device 502 transmits a request for data stored on theportable computing device. The data requested is a state of content insome embodiments. As described above, a state of content can be a levelin a video game, a frame in a video clip, a point within a song, a pagein a document, information of a particular contact within a contactslist application, etc. In some embodiments, the data requested is bothstate information and the content. For instance, the data requested maybe both the application (i.e., the content) and the current state (e.g.,a game level, a video frame) of a user of the portable computing devicewith respect to the application.

Some embodiments enable the electronic device to send the requestdirectly to the portable computing device. In such embodiments, theelectronic device may be requesting for state information of contentfrom the portable computing device. In some embodiments, the request isfirst transmitted to a remote server, which then requests data stored onthe portable computing device. As mentioned, the request may be arequest for content and state information. The server may then send aseparate request to the portable computing device for the stateinformation of an application running on the portable computing device.

Before the electronic device transmits the request for data, theelectronic device of some embodiments receives an invitation to transmitthe request. In some embodiments, the invitation to transmit a requestis sent by the portable computing device. The invitation to transmit maybe in the form of one or more URLs that directs the electronic device tothe resources it needs (e.g., the application data or state informationresiding on a remote server) or specifies the mechanism for retrievingthe information. In some embodiments, the electronic device transmitsthe request when the user of the electronic device clicks on the URL. Asmentioned, the electronic device may transmit one or more requests tothe server, the portable computing device, or both. Moreover, in someembodiments, the electronic device transmits the request when the userdirectly inputs a URL into a Web browser application on the electronicdevice.

After the electronic device transmits the data request, the electronicdevice obtains content relating to the request from a first source 504.In some embodiments, the electronic device obtains application data froma server or another client device. As mentioned above, the electronicdevice may download the entire application data from the server, streamthe necessary data from the server, or retrieve the informationnecessary for the electronic device to access an application running ona central server. If the electronic device already has the necessarydata on the device itself (e.g., already has a copy of the applicationinstalled on the electronic device), then the electronic device may skipthis step.

Then, the electronic device receives state information relating to therequested data from the portable computing device 506. In someembodiments, the portable computing device sends the state informationto the cloud or remote server (e.g., over a wireless communication). Theremote server may then forward the state information to the electronicdevice. Some embodiments enable the portable computing device to sendthe state information directly to the electronic device. The electronicdevice may establish a local connection (e.g., Wi-Fi, Bluetooth®) withthe portable computing device so that the portable computing device maysend the state information directly to the electronic device. This maybe done even when there is no Internet connection available. When thedevices are within a threshold range, the portable computing device maysend the state information without having to go through a third party(e.g., a central server).

In some embodiments, the devices gauge the size of the state informationthat is to be transmitted to the electronic device. If the devicesdetermine that the size of the state information exceeds a thresholdsize, then the portable computing device does not send the stateinformation directly to the electronic device because the transmissionbetween the devices can take too long. Some embodiments may on the otherhand determine that the state information is less than a threshold sizeand therefore permit transmission. The portable computing device maythen send the state information to the electronic device.

The electronic device then provides access to a state of the content onthe electronic device based at least in part on the state information508. Upon receiving the state information, the electronic device mayreplicate or mirror the state of the content on the portable computingdevice. For instance, the electronic device may locate a point in anaudio clip where a user of the portable computing device has left off sothat the user may seamlessly transition between devices. In anotherinstance, the electronic device may continue playing a video game ondifferent device without having to reconfigure the electronic device orrestart on the electronic device. The electronic device of someembodiments then allows the user of the electronic device to have accessto the state of the content on the electronic device that essentiallymirrors the state of the content on the portable device.

As mentioned above, the electronic device of some embodiments may obtainthe content (e.g., the application) and the state information atdifferent times (e.g., while being at home as opposed to on thecampsite). The electronic device may replicate the state of the contentof the portable device anytime after the electronic device receives thestate information.

FIG. 6 illustrates an example process 600 for sending state informationto an electronic device in accordance with at least one embodiment. Inthis example, a request is received over a first communication channelto establish communications with an electronic device, the electronicdevice having access to an instance of content 602. In some embodiments,the electronic device sends a request for data (e.g., state informationof a puzzle game) directly to a portable computing device through acommunication channel (e.g., wireless communication channel such asBluetooth® or Wi-Fi or wired communication channel using a USB cable).The portable computing device of some embodiments may receive a requestindirectly from the electronic device. For instance, the portablecomputing device may receive a request from a remote server for stateinformation (e.g., over a wireless communication channel) where therequest from the server was made upon the server receiving an initialrequest from the electronic device. In another instance, the portablecomputing device may receive from the remote server a forwarded requestfrom the electronic device for state information.

In some embodiments, the request includes identifying information (e.g.,IP address, MAC address) for the electronic device. The portablecomputing device of some embodiments may then identify which electronicdevice has sent the request in order to send back the requested data. Asmentioned above, the electronic device may have access to an instance ofcontent on the electronic device (e.g., when the electronic device hasinstalled the application), through streaming from the Internet, throughapplications kept and run on a central server, etc.

The portable computing device may then send a confirmation request overa direct communication channel to the electronic device to establish aconnection with the electronic device 604. Some embodiments send aconfirmation request to the electronic device upon receiving a requestfor data to confirm that the electronic device is the device that wantsto establish a connection to receive the requested data. This isperformed to make sure that the electronic device did make such arequest before the portable computing device mistakenly sends over stateinformation. The connection may be a wireless connection or a wiredconnection.

Then, the portable computing device may receive a confirmation from theelectronic device 606. If the portable computing device does not receivea confirmation from the electronic device, then a connection will not beestablished. If the portable computing device receives a confirmationfrom the electronic device, then the portable computing device initiatesand establishes a connection with the electronic device. In someembodiments, the established connection is a direct connection betweenthe two devices.

One of ordinary skill would recognize that there are instances wheredifferent precautions are taken and that some embodiments may notperform 604 and 606. Instead of requesting the electronic device toconfirm that the electronic device has made a request for data, theportable computing device of some embodiments may send a generated pin(e.g., in a separate email or text message) that the user of theelectronic device may enter when prompted by a login screen. As would beapparent to one of ordinary skill in the art, there may be many ways toconfirm that both devices would like to establish a connection betweenthe devices.

The portable computing device may send state information based on thereceived request and the confirmation 608. Upon receiving theconfirmation, the portable computing device of some embodimentsestablishes a connection with the electronic device and sends the stateinformation to the electronic device. This, in turn, enables theelectronic device to replicate a state of the content from the portablecomputing device on the electronic device.

FIG. 7 illustrates front and back views of an example electronic userdevice 700 that can be used in accordance with various embodiments.Although a portable computing device (e.g., a smartphone, an electronicbook reader, or tablet computer) is shown, it should be understood thatany electronic device capable of receiving, processing, and providinginput can be used in accordance with various embodiments discussedherein. The devices can include, for example, desktop computers,notebook computers, personal data assistants, smartphones, video gamingconsoles, television set top boxes, and portable media players, amongothers.

In this example, the user device 700 has a display screen 702 on thefront side, which under normal operation will display information to auser facing the display screen (e.g., on the same side of the userdevice as the display screen). The user device in this example includesat least one front image capture element 704 and at least one back imagecapture element 710 positioned on the device such that, with sufficientlenses and/or optics, the user device 700 is able to capture imageinformation in substantially any direction about the user device. Theexample user device 700 also includes at least one microphone 706 orother audio capture device capable of capturing audio data, such aswords spoken by a user of the device or sounds indicative of anenvironment in which the device can currently be found.

The example user device 700 also includes at least one position and/ororientation determining element 708. Such an element can include, forexample, an accelerometer or gyroscope operable to detect an orientationand/or change in orientation of the user device 700. An orientationdetermining element also can include an electronic or digital compass,which can indicate a direction (e.g., north or south) in which thedevice is determined to be pointing (e.g., with respect to a primaryaxis or other such aspect). A location determining element also caninclude or comprise a global positioning system (GPS) or similarpositioning element operable to determine relative coordinates for aposition of the computing device. Various embodiments can include one ormore such elements in any appropriate combination. As should beunderstood, the algorithms or mechanisms used for determining relativeposition and/or orientation can depend at least in part upon theselection of elements available to the device.

In order to provide functionality such as that described with respect toFIG. 7, FIG. 8 illustrates an example set of basic components of anelectronic user device 800. In this example, the device includes atleast one processor 802 for executing instructions that can be stored inat least one memory device or element 804. As would be apparent to oneof ordinary skill in the art, the device can include many types ofmemory, data storage or computer-readable storage media, such as a firstdata storage for program instructions for execution by the processor802, the same or separate storage can be used for images or data, aremovable storage memory can be available for sharing information withother devices, etc. The device typically will include some type ofdisplay element 806, such as a touch screen, electronic ink (e-ink),organic light emitting diode (OLED) or liquid crystal display (LCD),although devices such as portable media players might convey informationvia other means, such as through audio speakers.

As discussed, the device in many embodiments will include at least oneimage capture element 808 such as a camera or infrared sensor that isable to objects in the vicinity of the device. It should be understoodthat image capture can be performed using a single image, multipleimages, periodic imaging, continuous image capturing, image streaming,etc. Further, a device can include the ability to start and/or stopimage capture, such as when receiving a command from a user,application, or other device. The device also can include one or moreorientation and/or location determining elements 810, such as anaccelerometer, gyroscope, electronic compass, or GPS device as discussedabove. These elements can be in communication with the processor inorder to provide the processor with positioning and/or orientation data.

In some embodiments, the device can include at least one additionalinput device 812 able to receive conventional input from a user. Thisconventional input can include, for example, a push button, touch pad,touch screen, wheel, joystick, keyboard, mouse, trackball, keypad or anyother such device or element whereby a user can input a command to thedevice. These I/O devices could even be connected by a wireless infraredor Bluetooth or other link as well in some embodiments. In someembodiments, however, such a device might not include any buttons at alland might be controlled only through a combination of visual and audiocommands such that a user can control the device without having to be incontact with the device.

The example device also includes one or more wireless components 814operable to communicate with one or more electronic devices within acommunication range of the particular wireless channel. The wirelesschannel can be any appropriate channel used to enable devices tocommunicate wirelessly, such as Bluetooth, cellular, or Wi-Fi channels.It should be understood that the device can have one or moreconventional wired communications connections as known in the art.

The example device includes various power components 816 known in theart for providing power to a computing device, which can includecapacitive charging elements for use with a power pad or similar deviceas discussed elsewhere herein. The example device also can include atleast one touch- and/or pressure-sensitive element 818, such as a touchsensitive material around a casing of the device, at least one regioncapable of providing squeeze-based input to the device, etc. In someembodiments this material can be used to determine motion, such as ofthe device or a user's finger, for example, while in other embodimentsthe material will be used to provide specific inputs or commands.

As discussed, different approaches can be implemented in variousenvironments in accordance with the described embodiments. For example,FIG. 9 illustrates an example of an environment 900 for implementingaspects in accordance with various embodiments. As will be appreciated,although a Web-based environment is used for purposes of explanation,different environments may be used, as appropriate, to implement variousembodiments. The system includes an electronic client device 902, whichcan include any appropriate device operable to send and receiverequests, messages or information over an appropriate network 904 andconvey information back to a user of the device. Examples of such clientdevices include personal computers, cell phones, handheld messagingdevices, laptop computers, set-top boxes, personal data assistants,electronic book readers and the like. The network can include anyappropriate network, including an intranet, the Internet, a cellularnetwork, a local area network or any other such network or combinationthereof. Components used for such a system can depend at least in partupon the type of network and/or environment selected. Protocols andcomponents for communicating via such a network are well known and willnot be discussed herein in detail. Communication over the network can beenabled via wired or wireless connections and combinations thereof. Inthis example, the network includes the Internet, as the environmentincludes a Web server 906 for receiving requests and serving content inresponse thereto, although for other networks, an alternative deviceserving a similar purpose could be used, as would be apparent to one ofordinary skill in the art.

The illustrative environment includes at least one application server908 and a data store 910. It should be understood that there can beseveral application servers, layers or other elements, processes orcomponents, which may be chained or otherwise configured, which caninteract to perform tasks such as obtaining data from an appropriatedata store. As used herein, the term “data store” refers to any deviceor combination of devices capable of storing, accessing and retrievingdata, which may include any combination and number of data servers,databases, data storage devices and data storage media, in any standard,distributed or clustered environment. The application server 908 caninclude any appropriate hardware and software for integrating with thedata store 910 as needed to execute aspects of one or more applicationsfor the client device and handling a majority of the data access andbusiness logic for an application. The application server providesaccess control services in cooperation with the data store and is ableto generate content such as text, graphics, audio and/or video to betransferred to the user, which may be served to the user by the Webserver 906 in the form of HTML, XML or another appropriate structuredlanguage in this example. The handling of all requests and responses, aswell as the delivery of content between the client device 902 and theapplication server 908, can be handled by the Web server 906. It shouldbe understood that the Web and application servers are not required andare merely example components, as structured code discussed herein canbe executed on any appropriate device or host machine as discussedelsewhere herein.

The data store 910 can include several separate data tables, databasesor other data storage mechanisms and media for storing data relating toa particular aspect. For example, the data store illustrated includesmechanisms for storing content (e.g., production data) 912 and userinformation 916, which can be used to serve content for the productionside. The data store is also shown to include a mechanism for storinglog or session data 914. It should be understood that there can be manyother aspects that may need to be stored in the data store, such as pageimage information and access rights information, which can be stored inany of the above listed mechanisms as appropriate or in additionalmechanisms in the data store 910. The data store 910 is operable,through logic associated therewith, to receive instructions from theapplication server 908 and obtain, update or otherwise process data inresponse thereto. In one example, a user might submit a search requestfor a certain type of item. In this case, the data store might accessthe user information to verify the identity of the user and can accessthe catalog detail information to obtain information about items of thattype. The information can then be returned to the user, such as in aresults listing on a Web page that the user is able to view via abrowser on the user device 902. Information for a particular item ofinterest can be viewed in a dedicated page or window of the browser.

Each server typically will include an operating system that providesexecutable program instructions for the general administration andoperation of that server and typically will include computer-readablemedium storing instructions that, when executed by a processor of theserver, allow the server to perform its intended functions. Suitableimplementations for the operating system and general functionality ofthe servers are known or commercially available and are readilyimplemented by persons having ordinary skill in the art, particularly inlight of the disclosure herein.

The environment in one embodiment is a distributed computing environmentutilizing several computer systems and components that areinterconnected via communication links, using one or more computernetworks or direct connections. However, it will be appreciated by thoseof ordinary skill in the art that such a system could operate equallywell in a system having fewer or a greater number of components than areillustrated in FIG. 9. Thus, the depiction of the system 900 in FIG. 9should be taken as being illustrative in nature and not limiting to thescope of the disclosure.

The various embodiments can be further implemented in a wide variety ofoperating environments, which in some cases can include one or more usercomputers or computing devices which can be used to operate any of anumber of applications. User or client devices can include any of anumber of general purpose personal computers, such as desktop or laptopcomputers running a standard operating system, as well as cellular,wireless and handheld devices running mobile software and capable ofsupporting a number of networking and messaging protocols. Such a systemcan also include a number of workstations running any of a variety ofcommercially-available operating systems and other known applicationsfor purposes such as development and database management. These devicescan also include other electronic devices, such as dummy terminals,thin-clients, gaming systems and other devices capable of communicatingvia a network.

Most embodiments utilize at least one network that would be familiar tothose skilled in the art for supporting communications using any of avariety of commercially-available protocols, such as TCP/IP, OSI, FTP,UPnP, NFS, CIFS and AppleTalk. The network can be, for example, a localarea network, a wide-area network, a virtual private network, theInternet, an intranet, an extranet, a public switched telephone network,an infrared network, a wireless network and any combination thereof.

In embodiments utilizing a Web server, the Web server can run any of avariety of server or mid-tier applications, including HTTP servers, FTPservers, CGI servers, data servers, Java servers and businessapplication servers. The server(s) may also be capable of executingprograms or scripts in response requests from user devices, such as byexecuting one or more Web applications that may be implemented as one ormore scripts or programs written in any programming language, such asJava®, C, C# or C++ or any scripting language, such as Perl, Python orTCL, as well as combinations thereof. The server(s) may also includedatabase servers, including without limitation those commerciallyavailable from Oracle®, Microsoft®, Sybase® and IBM®.

The environment can include a variety of data stores and other memoryand storage media as discussed above. These can reside in a variety oflocations, such as on a storage medium local to (and/or resident in) oneor more of the computers or remote from any or all of the computersacross the network. In a particular set of embodiments, the informationmay reside in a storage-area network (SAN) familiar to those skilled inthe art. Similarly, any necessary files for performing the functionsattributed to the computers, servers or other network devices may bestored locally and/or remotely, as appropriate. Where a system includescomputerized devices, each such device can include hardware elementsthat may be electrically coupled via a bus, the elements including, forexample, at least one central processing unit (CPU), at least one inputdevice (e.g., a mouse, keyboard, controller, touch-sensitive displayelement or keypad) and at least one output device (e.g., a displaydevice, printer or speaker). Such a system may also include one or morestorage devices, such as disk drives, optical storage devices andsolid-state storage devices such as random access memory (RAM) orread-only memory (ROM), as well as removable media devices, memorycards, flash cards, etc.

Such devices can also include a computer-readable storage media reader,a communications device (e.g., a modem, a network card (wireless orwired), an infrared communication device) and working memory asdescribed above. The computer-readable storage media reader can beconnected with, or configured to receive, a computer-readable storagemedium representing remote, local, fixed and/or removable storagedevices as well as storage media for temporarily and/or more permanentlycontaining, storing, transmitting and retrieving computer-readableinformation. The system and various devices also typically will includea number of software applications, modules, services or other elementslocated within at least one working memory device, including anoperating system and application programs such as a client applicationor Web browser. It should be appreciated that alternate embodiments mayhave numerous variations from that described above. For example,customized hardware might also be used and/or particular elements mightbe implemented in hardware, software (including portable software, suchas applets) or both. Further, connection to other computing devices suchas network input/output devices may be employed.

Storage media and computer readable media for containing code, orportions of code, can include any appropriate media known or used in theart, including storage media and communication media, such as but notlimited to volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage and/or transmissionof information such as computer readable instructions, data structures,program modules or other data, including RAM, ROM, EEPROM, flash memoryor other memory technology, CD-ROM, digital versatile disk (DVD) orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices or any other medium which canbe used to store the desired information and which can be accessed by asystem device. Based on the disclosure and teachings provided herein, aperson of ordinary skill in the art will appreciate other ways and/ormethods to implement the various embodiments.

The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. It will, however, beevident that various modifications and changes may be made thereuntowithout departing from the broader spirit and scope of the invention asset forth in the claims.

1. A method of enabling an electronic device to generate a displaycorresponding to a state of content on a portable computing device, themethod comprising: receiving a link associated with the portablecomputing device; transmitting a data request to a location associatedwith the link, the request including identifying information for theelectronic device; receiving content related to the data request from aremote server; establishing communication with the portable computingdevice using the identifying information; receiving state informationrelated to the data request directly from the portable computing device;and generating a display on the electronic device using the content andthe state information, wherein a state of the content displayed on theelectronic device matches a state of the content displayed on theportable computing device.
 2. The method of claim 1, whereintransmitting the data request causes the data request to be sent to theportable computing device to establish the communication using theidentifying information.
 3. The method of claim 1, wherein the stateinformation relates to a location within the content.
 4. The method ofclaim 1, wherein establishing communication with the portable computingdevice is performed over a wireless channel that includes at least oneof a Bluetooth channel, a cellular channel, and a Wi-Fi channel.
 5. Themethod of claim 1, wherein the content is at least one of an audio file,a video file, a presentation, an application, a game, and wherein thestate information is at least one of a point within the audio file, aframe within the video file, a page within a presentation, a portionwithin the application, a level in the game.
 6. The method of claim 1,wherein the data request is transmitted over a Web browser of theelectronic device.
 7. A method of transferring a state of content of afirst computing device to a second computing device, the methodcomprising: transmitting, from the second computing device, a requestfor data stored on the first computing device; obtaining contentrelating to the requested data from a source of content; receiving stateinformation relating to the requested data directly from the firstcomputing device to the second computing device; and providing access toa state of the content on the second computing device based at least inpart on the received state information, wherein a state of the firstcomputing device with respect to content is transferred directly to thesecond computing device such that the state of the content is accessibleon the second computing device.
 8. The method of claim 7, furthercomprising: requesting authentication information from a user of thesecond computing device, authentication information comprising at leastone of a pin, a fingerprint, a facial features input, a gesture input,and an eye scan input; and determining whether the user is authorized toreceive information from the first computing device using theauthentication information.
 9. The method of claim 7, wherein theobtained content is an address book application and the state of thecontent is the contact information as stored on the first computingdevice.
 10. The method of claim 7, wherein the state information isreceived over a wireless channel that includes at least one of aBluetooth channel, a cellular channel, and a Wi-Fi channel.
 11. Themethod of claim 7, wherein transmitting the request for data comprises:sending a first request for the content directly to the source that is aremote server; and sending a second request for the state information tothe first computing device.
 12. The method of claim 7, wherein therequest is transmitted to the source that is a remote server operable totranslate the request into multiple requests for the remote server andthe first computing device.
 13. The method of claim 7, wherein therequest is transmitted through a Web browser of the second computingdevice.
 14. The method of claim 7, further comprising: receiving auniform resource locator (URL) from the first computing device, whereinthe request is transmitted to an address associated with the URL when auser of the second computing device selects the URL.
 15. The method ofclaim 7, wherein the content is obtained through at least one ofdownloading the content from the source to the second computing device,data streaming the content from the source to the second computingdevice, and loading certain local resources to execute a remoteapplication while maintaining a local virtual display.
 16. The method ofclaim 7, further comprising: determining a set of parameters of thesecond computing device; and modifying a display of the state of thecontent on the second computing device based at least in part on thedetermined set of parameters, wherein the modified display on the secondcomputing device is of a different display resolution than a display ofthe state of the content on the first computing device.
 17. The methodof claim 7, wherein the second computing device is one of a monitor, aprojector, a television, a notebook computer, and a personal computer,and the first computing device is one of a smartphone, a tabletcomputer, and a portable media player.
 18. A method of enabling a userof a first computing device to seamlessly transition to using a secondcomputing device during the usage of an application, the methodcomprising: receiving a request over a first communication channel toestablish communications with the second computing device, the secondcomputing device having access to an instance of content; sending aconfirmation request over a direct communication channel to the secondcomputing device to establish a connection with the second computingdevice; receiving a confirmation from the second computing device; andsending state information based on the received request and theconfirmation, wherein the second computing device may use the stateinformation to replicate a state of the content from the first computingdevice on the second computing device.
 19. The method of claim 18,wherein the state information is sent directly to the second computingdevice through a local connection.
 20. The method of claim 18, whereinreceiving the request, sending the confirmation request, receiving theconfirmation, sending the state information are performed without anInternet connection.
 21. The method of claim 18, further comprising:determining whether a data size of the state information exceeds athreshold amount of data; sending the state information to a remoteserver for transmission to the second computing device when thedetermined data size exceeds the threshold amount of data.
 22. Themethod of claim 18, further comprising: sending a link to the secondcomputing device, wherein a selection of the link causes the request tobe sent over the first communication channel from the second computingdevice.
 23. A computer readable medium storing a computing program forenabling an electronic device to have access to data on a computingdevice, the computer program comprising sets of instructions for:transmitting a request for data stored on the computing device;obtaining content relating to the requested data from a source;receiving state information relating to the requested data from thecomputing device; and providing access to a state of the content on theelectronic device based at least in part on the state information,wherein a state of the computing device with respect to content on thecomputing device is transferred directly to the electronic device. 24.The computer readable medium of claim 23, wherein the state informationis received directly from the computing device.
 25. The computerreadable medium of claim 23, wherein the computer program furthercomprises a set of instructions for authenticating that a user of theelectronic device has authority to access content from the computingdevice.
 26. An electronic device, comprising: a processor; and a memorydevice including instructions operable to be executed by the processorto perform a set of actions, enabling the electronic device to: transmita request for data stored on a computing device; obtain content relatingto the requested data from a source; receive state information relatingto the requested data from the computing device; and provide access to astate of the content on the electronic device based at least in part onthe state information, wherein a state of the computing device withrespect to content on the computing device is transferred directly tothe electronic device.
 27. The device of claim 26, wherein the contentis obtained while the electronic device is communicatively coupled withthe source, and wherein the state information is received while theelectronic device is not communicatively coupled with the source. 28.The device of claim 26, wherein the state information is receiveddirectly from the computing device.
 29. The device of claim 26, whereinthe state information is received over a wireless channel that includesat least one of a Bluetooth channel, a cellular channel, and a Wi-Fichannel.